As use of computer networks and the Internet continues to expand, streaming media use also continues to grow. One of the most desirable applications of streaming media is to present the streaming media on a wireless client. Typically, streaming media is streamed from a server over a wired network to a wireless base station that transmits the streaming media over a wireless connection to a client device. In this environment, there is typically a transmission rate mismatch due to the maximum bandwidth of the wired network (e.g., the server to the wireless base station) being different than the maximum bandwidth of the wireless link (e.g., wireless base station to client).
In order to accommodate the transmission rate mismatch in two wired networks, end-to-end congestion control is often implemented. In a wired network, data loss is typically directly related to the transmission rate. As such, it is possible to reduce the percentage of data packets lost by reducing the transmission rate. Similarly, in the case when media is streamed from a server in a wired network infrastructure to a wireless client via a last hop wireless link, conventional practice is to ignore the effects of the last hop wireless link and employ endpoint media adaptations based solely on observable endpoint statistics. Since endpoint statistics are aggregated across all wired and wireless links, it is impossible to distinguish the respective conditions of the wired and wireless networks.
The resulting problem with the conventional practice is that the server can confuse losses due to wireless link failure as losses due to wired network congestion given only endpoint statistics. If losses are due to wired network congestion, then the server should perform endpoint congestion control and reduce sending rate. Typical congestion control algorithms decrease the sending rate with increasing round trip time and packet loss rates between two endpoints. On the other hand, if losses are due to wireless link failure, then the server should increase the error resiliency of the transmitting media stream while keeping the same sending rate. By not being able to distinguish the two different types of losses, in the case when losses are caused by wireless link failure, the server confuses them as wired network congestion losses and will unnecessarily perform congestion control and reduce the sending rate. The end result is a decrease in performance.
It has been proposed to solve this problem is a Real-time Transport Protocol (RTP) monitoring agent—a network agent, placed at the intersection of wired network and wireless link, that monitors existing streaming flows and periodically sends statistical feedback in the form of RTP Control Protocol (RTCP) reports back to the senders of the flows. As part of the RTP monitoring agent design, a shaping point, placed in front of the RTP monitoring agent, adjusts the outgoing rate of all packet traffic to the rate of the radio link.
The shaping point operates in the following manner. Let R1 be the permissible bandwidth of the wired network as determined by a standard wired network congestion control algorithm, based on wired network endpoint observable round trip time and packet loss rate. Let R2 be the maximum sending rate permissible for the wireless link, as determined by the base-station during wireless link resource allocation phase of the connection setup. In the event that R1<R2, the shaping point does nothing, and the streaming server sends at rate R1 as a result of the default behavior of the wired congestion control algorithm. In the event that R1>R2, the shaping point drops packets before packet arrival at the RTP monitoring agent until the server reacts to the drops by reducing the sending rate to R2 due to perceived wired network congestion control.
In particular, when R1<R2, the shaping point does not drop packets and the RTCP reports from the agent have reliable statistics of the wired network. Alternatively, in the case when R1>R2, the shaping point drops packets before packet arrival at the agent to reduce sending rate to R2. Depending one whether R1<R2 or R1>R2, the server can gather certain information. However, at any given time the server does not know whether R1<R2 or R1>R2. In the absence of that knowledge then, the server can only induce the following information: (1) the smaller of R1 and R2, which is the resulting server sending rate, (2) an upper bound of the wired packet loss condition, and (3) packet loss in the wireless link only.